The present invention relates particularly to a graphics imaging system for producing animation and more particularly to a graphics imaging system that enables the application of animation keys to only a subset of a large number of animation parameters at a time.
Computer systems for generating animation are used in the cinema and television industries. In these industries, animation is useful for generating entertainment multi-media and programs for professional purposes such as training materials. These applications are used by an animator to produce the finished imaging work, which typically involves controlling specific objects through a sequence of scenes or settings to present a movement in the object during the time span.
The objects that are controlled by the animators are represented in the memory of the computer system through a data construct termed a xe2x80x9cPSetxe2x80x9d, which contains parameter values or pointers to parameter values for properties associated with the object. A PSet is hierarchical in structure, and thus can contain other lower level PSets within it. For example, an object such as a xe2x80x9cstylexe2x80x9d that defines the attributes of a brush stroke applied to a surface in a graphics session can be defined as a top-level PSet that includes lower level PSets such a xe2x80x9cbrushxe2x80x9d and xe2x80x9cfill effectxe2x80x9d within it. These lower level PSets in this hierarchical structure are considered the children of the top level PSet, style. Whenever the top-level PSet xe2x80x9cstylexe2x80x9d is referred to, a reference to the lower-level PSets, xe2x80x9cbrushxe2x80x9d and xe2x80x9cfill effectxe2x80x9d is implicit. PSets can be generated as basic units that correspond to a specific object, and more complex PSets can thus be generated from these basic PSets.
Because PSets can be constructed from other PSets, it is typical for a basic PSet that implements a fundamental function such as a xe2x80x9cbrushxe2x80x9d object to be used in a number of other PSets, and thus the parameter values of the PSet to be used in describing more than one object at a time. The parameter values referenced by a PSet includes a construct termed a xe2x80x9ckeyxe2x80x9d, which defines a mapping between a certain point in time and the value of a parameter which can vary over time. Typically, keys are used by the animator to generate a mathematical curve that in some way represents the motion associated with the animation. These curves can be displayed visually using a viewer, which plots the value of the parameter with respect to time.
In the process of producing the animation, an animator may experiment with different key settings to generate different animation results. The parameter values and the keys may be set by a variety of ways, including invoking a specific PSet editor, a scene editor, or by setting them directly in the animation editor, using external physical devices. Because of the typically large list of parameters associated with a PSet, it can be difficult for an animator to determine the actual key settings that are being used in the animation.
It is advantageous to provide global animation controls which allow the user to set keys on multiple parameters simultaneously, as this allows him to configure the output of the system in a desired state and then bind the current settings to the current time as a single action. The alternative, having the user set a key for each parameter in the system manually, would be time-consuming and repetitive.
Moreover, while many attributes of an object may be animatable, it is often desirable for only a subset of these attributes to receive animation keys when the user chooses to apply this global key. The user may be focussing his attention on a specific set of parameters for animation and have inadvertently set values on other parameters which he would prefer not to be stored as keys.
Therefore it is desirable to have a mechanism to mark only certain keys within a PSet of updated values, and set keys only on these marked parameters when the user issues a command to globally set keys at the current time.
The present invention advantageously provides for a method and system that is operable on a computer system, for selectively determining keys to be made available to a graphical imaging system to drive a animation application. The method includes receiving a Parameter Set (PSet) having a plurality of parameters corresponding to the animation application, assigning one or more of said parameters a value; marking a subset of said parameters, modifying the keys of only marked parameters according to the parameter""s value, and running the animation application in response to the keys after marking.
In one aspect of the invention, when the user issues xe2x80x9cset a keyxe2x80x9d, the system binds values to time only on those parameters that have been marked for animation.
In a further aspect of the invention, the simulation application is an animation application for producing an animated presentation. The PSets therefor represent specific objects, such as a brush or painting device, associated with the animation.
In a still further aspect of the invention, the PSet data structure includes keys for defining temporal characteristics of the animation in the form of a mathematical graph. The parameter values can be selectively marked to determine which parameter values will receive a key for animation.
In a yet further aspect of the invention, an animation application having a large number of parameter values associated with the animation can be controlled by marking those parameters, having modified values, for which the animation is to occur.